perm filename FOO.LOS[E,ALS] blob
sn#132445 filedate 1974-11-29 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE MICDMP
C00008 00003 A←1
C00009 00004 LPDL==10
C00025 ENDMK
C⊗;
TITLE MICDMP
APR==0
PI==4
TTY==120
EXTERNAL DDT
;PETIT CHANNEL DEFINITIONS
PMP←500
IBM←504
;PMP CONI BITS
;LEFT HALF
CHLNXM←←200000 ;CHANNEL NXM
SELERR←←40000 ;SELECT ERROR
;37700 ARE ADDRESS OF CURRENTLY SELECTED DEVICE
DSKPAR←←40 ;CONTROL UNIT DETECTED PARITY ERROR (BIT 18 ALSO SET)
CORPAR←←20 ;CHANNEL DETECTED PARITY ERROR (BIT 18 ALSO SET)
IDLEL←←10 ;CHANNEL IS IDLE
IS←←4 ;CHANNEL IS IN INITIAL SELECT STATE
REQ←←2 ;CHANNEL IS IN REQUEST STATE
TRANS←←1 ;CHANNEL IS IN TRANSFER STATE
;RIGHT HALF
PARERR←←400000 ;CHANNEL OR CONTROL UNIT DETECTED PARITY ERROR
CMDEMP←←200000 ;COMMAND HOLD EMPTY (OR UNUSUAL END)
IDLE←←100000 ;IDLE STATE (SAME AS IDLEL)
UNEND←←40000 ;UNUSUAL END (NXM,SELERR,BUSY,UNIT CHECK,DATA CHAIN ERR)
NEWST←←20000 ;CHANNEL HAS NEW STATUS
ATTN←←10000 ;ATTENTION
STMOD←←4000 ;STATUS MODIFIER
CUEND←←2000 ;CONTROL UNIT END
BUSY←←1000 ;DEVICE BUSY (IF STMOD THEN CU BUSY)
CHNEND←←400 ;CHANNEL END
DEVEND←←200 ;DEVICE END
UCHK←←100 ;UNIT CHECK
UNXCPT←←40 ;UNIT EXCEPTION
ACTIVE←←20 ;CHANNEL IS REQUESTING AN INTERRUPT
;PMP CONO BITS (ENABLE INTERRUPT CONDITIONS)
EPAR←←400000 ;DISK OR CORE PARITY ERROR
ECMDEM←←200000 ;COMMAND HOLD EMPTY
EIDLE←←100000 ;IDLE
EUNEND←←40000 ;UNUSUAL END
ENEWST←←20000 ;NEW STATUS
EATTN←←10000 ;ATTENTION
ESTMOD←←4000 ;STATUS MODIFIER
ECUEND←←2000 ;CONTROL UNIT END
EBUSY←←1000 ;BUSY
ECHEND←←400 ;CHANNEL END
EDEVEN←←200 ;DEVICE END
EUCHK←←100 ;UNIT CHECK
EUNXCP←←40 ;UNIT EXCEPTION
;DATAO PMP,WCMA
;DATAI IBM,MA
;IBM CONO BITS (FOR CLEARING AND RESETTING THE CHANNEL)
CUNEND←←4000 ;CLEAR UNUSUAL END
CACTIV←←400 ;CLEAR ACTIVE
CNEWST←←200 ;CLEAR NEW STATUS
CSTATU←←40 ;CLEAR STATUS REGISTER
CCMDHO←←20 ;CLEAR COMMAND HOLD LOADED
SCMDHO←←10 ;SET COMMAND HOLD LOADED
RSTCHN←←1 ;RESET CHANNEL
;IBM DATAO BITS (SETS COMMAND HOLD LOADED AND LOADS COMMAND HOLD)
;17,,740000 ARE THE DEVICE ADDRESS
NWCMA←←20000 ;THIS COMMAND NEEDS A WCMA (DOES A MEMORY XFER)
BYTE4←←10000 ;4 BYTE MODE
CBYTES←←4000 ;COUNT BYTES
CHAIN←←2000 ;COMMAND CHAINING
SKMON←←1000 ;SKIP IF STATUS MOD ON
SKMOFF←←400 ;SKIP IF STATUS MOD OFF
;377 ARE THE COMMAND
A←1
B←2
C←3
D←4
E←5
T←6
TT←7
TTT←10
P←17
JRST DDT
GO: CONO PI,711400
CONO APR,675550
MOVE P,[-LPDL,,PDL-1]
PUSHJ P,BLAST ;RESET THE CHANNEL
DATAO PMP,XWCMA
DATAO IBM,RCMD
CONSO PMP,NEWST
JRST .-1
CONI PMP,T ;GET THE STATUS
TDNE T,[CHLNXM!SELERR,,PARERR!UNEND!ATTN!STMOD!CUEND!BUSY!UCHK!UNXCPT]
JRST LOSE
TRC T,CHNEND!DEVEND
TRCE T,CHNEND!DEVEND
JRST LOSE
DATAO TTY,BLAST1
JRST .
BLAST: CONO IBM,CUNEND!CACTIV!CNEWST!CSTATU!CCMDHO
MOVEI T,3
BLAST1: MOVEI TT,1015
CONO IBM,RSTCHN
SOJG TT,.
SOJG T,BLAST1
DING: POPJ P,7
LOSE: DATAO TTY,DING
JRST 4,GO
LPDL==10
PDL: BLOCK LPDL
RCMD: <14⊗=17>!NWCMA!BYTE4!6
XWCMA: 0,,1000 ;DATA TRANSFER WCMA
BLOCK 1000 ;ENOUGH ROOM TO GET US TO 1000
BLOCK 20000 ;ENOUGH ROOM FOR MICROSTORE
END GO